#include <vector>
#include <iostream>
#include <fstream>
#include <string>
#include <utility>

// This class contains a vector of vectors of pairs.  It is used to keep track of
// all combinations of edges in a graph.  It automatically checks for permutations
// and ignores them if that combination already exists.

class Edges {
public:
	Edges();
	~Edges();

	bool contains(std::vector<std::pair<int, int> >);
	void add(std::vector<std::pair<int, int> >);
	int getNumCombinations();
	int printCombinations();
	int printCombinations(std::vector<std::pair<int, std::string> >);
	int printCombinations(std::vector<std::pair<int, std::string> >, std::string);
private:
	std::vector<std::vector<std::pair<int, int> > > e;
};
